1. Field of the Invention
The present invention relates generally to the identification of hardware devices connected to a computer, and specifically to a system and method for performing hardware identification of components connected to an AC '97 architecture for software based operations.
2. Description of Related Art
Personal computers are used for a wide variety of multi-media applications, where it is now becoming desirable for personal computers (PCs) to function with high quality audio performance. Current PC audio architectures are designed to run midrange audio-performance-integrated ISA products. In order to provide PCs with high performance/high quality audio comparable to electronic devices, a new PC architecture capable of providing this performance needed to be developed. Thus, a computer industry consortium developed a new PC audio architecture, the Audio Codec '97 (AC '97), for next-generation audio-intensive PC applications, such as DVD, 3-D multiplayer games, and interactive music. The AC '97 architecture defines a high quality audio architecture for a PC platform to support a wide range of high quality audio solutions. The AC '97 architecture further allows highly versatile modem communication to transpire
The AC '97 architecture includes at least one codec 100 and codec controller 102 connected through a digital serial link, referred to as an AC-link bus 104, as shown in FIG. 1. The codec 100 performs digital-to-analog conversion (DAC) and analog-to-digital conversion (ADC), mixing, analog processing, and modem codec functions. The codec 100 functions as a slave to the digital codec controller 102, which, in turn, is connected to the CPU 108 of the host personal computer 106. The codec 100 communicates with the codec controller 102 through the AC-link bus 104. The codec 100 may include both an audio DAC/ADC and a modem DAC/ADC controlled by the codec controller 102. The codec 100 performs the appropriate data conversion and communicates analog signals to an input/output device, such as a communication line through a data access arrangement (DAA) 110 when performing modem functions or an audio device 112 when performing audio functions. The AC-link bus 104 was specifically designed to directly connect the codec 100 to the codec controller 102. In prior PC architectures, it was necessary to connect an interface device between the codec 100 and the core logic controlling the codec 100. The AC '97 eliminates the need for a separate interface device to be incorporated by utilizing the AC-link bus 104 to directly connect the codec 100 to the codec controller 102.
All digital audio streams, modem line codec streams, and command/status information are communicated over the AC-link bus in data streams according to a predefined protocol developed for the AC '97 architecture. The codec 100 must be capable of performing variable sample rate DAC and ADC conversions, where the AC '97 infrastructure can support data streams at a variety of required sample rates for modem transmissions. The AC '97 component specification sets forth the various sample rates required for modem operation for the connected codecs and codec controllers. The communication protocol defined by the industry consortium is set forth in the Audio Codec'97 Component Specification, Revision 1.03, released Sept. 15, 1996 by the Audio Codec'97 Working Group, Audio Codec '97, Revision 2.0, released Sept. 29, 1997 by Intel Corporation, and Audio Codec '97, Revision 2.1, released May 22, 1998 by Intel Corporation. The disclosures of Revisions 1.03, 2.0, and 2.1 of the Audio Codec '97 are hereby incorporated by reference into this disclosure.
For data transfer operations, the codec 100 and codec controller 102 operate at a sample rate selected from a set of predefined sample rates supported by the AC '97 architecture. The codec 100 and codec controller 102 should be capable of operating at each of the supported sample rates in the set. For instance, sample rates of 8000, 9600, 13714.28, and 16000 Hz are included in the predefined set of sample rates for modem ADC/DAC. Each codec 100 is governed by a modem sample rate control register that contains a 16-bit unsigned value between 0 and 65535, representing the sample rate in operation of Hz. A software driver initially indicates the desired sample rate to the codec controller 102 and this sample rate is written into the control register. The codec 100 reads the sample rate from the control register. If the sample rate written into the control register corresponds to one of the predefined supported sample rates, then the codec 100 will echo back this sample rate after it is read from the control register. The echoed back sample rate will then be utilized as the operating sample rate by the codec 100 and codec controller 102. When a sample rate is written into the control register which does not correspond to one of the predefined sample rates, the AC '97 component specification instructs the codec 100 to return the closest supported sample rate from the predefined set of sample rates. For example, if a sample rate of 16004 Hz is written into the control register, the closest supported sample rate is 16000 Hz and this sample rate will be returned by the codec 100.
Software based operations, such as soft modems and soft audio, utilize a host processor on a personal computer controlled by software drivers to perform the operations, thus reducing the hardware requirements by eliminating the need for certain hardware components. The only required hardware for a soft modem comprises a data access arrangement (DAA), digital to analog converter (codec), analog to digital converter, and bus interface. Modulation and modem controller functions are performed by a software driven codec controller or host processor. In order to prevent unauthorized piracy of the software drivers specifying the modem control functions or other software based operations, certain security measures are required to ensure that the software drivers and hardware components are both provided by desired suppliers.
The industry consortium developing the AC '97 architecture wanted to promote interoperability between codecs and codec controllers produced by different vendors to function according to AC-link protocol. Thus, the AC '97 architecture allows interoperability between codecs and codec controllers produced by different vendors as long as the attached components follow the specified protocol. This interoperability of components can compound the ever-present problem in the computer industry of the piracy of hardware components and software If the software drivers produced by one vendor for controlling their own codecs and codec controllers are pirated by a competing vendor, it is possible for the competing vendor to utilize their own hardware interfaces in conjunction with the copied driver software to function in accordance with the protocol of the AC '97 architecture .There is clearly a need for a system and method for providing protection against unauthorized copying of hardware interfaces and software code utilized in the AC '97 architecture. Moreover, there is a need for a system and method for identifying whether the hardware components connected in the AC '97 architecture are provided by a desired supplier.